﻿// 3497. 质数.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


using namespace std;
/*
https://www.acwing.com/problem/content/3500/
输出从小到大的第 k个质数。

输入格式
输入包含多组数据。

每组数据一行，一个整数 k。

输出格式
每组数据输出占一行，输出第 k 个质数。

数据范围
1≤k≤10000
,
每个输入最多包含 100 组数据。

输入样例：
3
7
输出样例：
5
17
*/

const int N = 1000010;
int primes[N], cnt;     // primes[]存储所有素数
bool st[N];         // st[x]存储x是否被筛掉

void get_primes(int n)
{
    for (int i = 2; i <= n; i++)
    {
        if (!st[i]) primes[cnt++] = i;
        for (int j = 0; primes[j] <= n / i; j++)
        {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
}

 

int main()
{
    get_primes(1000010);
    int k = 0;
    while (cin >> k) {
        cout << primes[k - 1] << endl;
    }

    return 0;
}
 